﻿// Para obtener una introducción a la plantilla En blanco, consulte la siguiente documentación:
// http://go.microsoft.com/fwlink/?LinkId=232509
(function () {
    "use strict";

    var app = WinJS.Application;
    var activation = Windows.ApplicationModel.Activation;

    app.onactivated = function (args) {
        if (args.detail.kind === activation.ActivationKind.launch) {
            if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
                // TODO: Esta aplicación se ha iniciado recientemente. Inicializar
                // la aplicación aquí.
            } else {
                // TODO: Esta aplicación se ha reactivado tras estar suspendida.
                // Restaurar el estado de la aplicación aquí.
            }

            var View = Backbone.View.extend({
                el: $("#main"),
                events: {
                    "click #send": "onClickSend"
                },
                initialize: function () {
                    _.bindAll(this, "render", "onClickSend");

                    this.model = new Model();
                    this.model.on("change", this.render);
                },
                render: function () {
                    if ($("#command").val() === "") {
                        $("#response", this.el).append("<p>please enter your command</p>");
                    } else {
                        var response = this.model.processCommand();
                        $("#response", this.el).append("</p>" + response + "</p>");
                    }
                },
                onClickSend: function () {
                    var v = $("#command", this.el).val();
                    if (v === "")
                        this.render();
                    else
                        this.model.set("command", v);
                }
            });

            var v = new View();

            args.setPromise(WinJS.UI.processAll());
        }
    };

    var Model = Backbone.Model.extend({
        defaults: {
            command: ""
        },
        processCommand: function () {
            var command = this.get("command");
            return command;
        }
    });

    app.oncheckpoint = function (args) {
        // TODO: Esta aplicación está a punto de suspenderse. Guardar cualquier estado
        // que deba mantenerse a través de las suspensiones aquí. Puede usar el
        // objeto WinJS.Application.sessionState, que se guarda y se restaura
        // automáticamente en las suspensiones. Si debe completar una
        // operación asincrónica antes de suspenderse la aplicación, llame a
        // args.setPromise().
    };

    app.start();
})();
